home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / easyblt / stretchs.cls < prev   
Text File  |  1999-04-24  |  7KB  |  281 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "StretchSysCls"
  10. Attribute VB_GlobalNameSpace = True
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = True
  14. Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
  15. Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
  16. 'local variable(s) to hold property value(s)
  17. Private mvarhDC As Long 'local copy
  18. Private mvarBMP As Long
  19. Private mvarIsEmpty As Boolean 'local copy
  20. Private OldBMP As Long
  21. Private mvarTransparency As Boolean 'local copy
  22. Private ScreenWidth As Integer
  23. Private ScreenHeight As Integer
  24. Private ScreenX As Integer
  25. Private ScreenY As Integer
  26. 'local variable(s) to hold property value(s)
  27. Private mvarMaskBMP As Long 'local copy
  28. Private mvarMaskhDC As Long 'local copy
  29. Public TargetDC As Long
  30. 'local variable(s) to hold property value(s)
  31. Private mvarPicWidth As Integer 'local copy
  32. Private mvarPicHeight As Integer 'local copy
  33. Public NoAutoRedraw As Boolean
  34.  
  35. Public Function CopyMask(ByVal X As Integer, ByVal y As Integer, ByVal H As Integer, ByVal W As Integer) As Boolean
  36. CP = BltSysMod.CopyPicture(mvarMaskhDC, X, y, H, W)
  37. End Function
  38.  
  39. Public Function PasteMaskPicture(Optional ByVal X As Integer = 0, Optional ByVal y As Integer = 0) As Boolean
  40. OldBMP = SelectObject(mvarMaskhDC, mvarMaskBMP)
  41. ret% = BltSysMod.PastePicture(mvarMaskhDC, 0, 0)
  42. OldBMP = SelectObject(mvarMaskhDC, OldBMP)
  43. ScreenWidth = ClpBoard.Width
  44. ScreenHeight = ClpBoard.Height
  45. End Function
  46. Public Property Get PicHeight() As Integer
  47. 'used when retrieving value of a property, on the right side of an assignment.
  48. 'Syntax: Debug.Print X.PicHeight
  49.     PicHeight = mvarPicHeight
  50. End Property
  51.  
  52.  
  53.  
  54. Public Property Get PicWidth() As Integer
  55. 'used when retrieving value of a property, on the right side of an assignment.
  56. 'Syntax: Debug.Print X.PicWidth
  57.     PicWidth = mvarPicWidth
  58. End Property
  59.  
  60.  
  61.  
  62. Public Property Get ScrY() As Integer
  63. ScrY = ScreenY
  64. End Property
  65.  
  66. Public Property Get MaskhDC() As Long
  67. 'used when retrieving value of a property, on the right side of an assignment.
  68. 'Syntax: Debug.Print X.MaskhDC
  69.     MaskhDC = mvarMaskhDC
  70. End Property
  71.  
  72.  
  73.  
  74. Public Property Get MaskBMP() As Long
  75. 'used when retrieving value of a property, on the right side of an assignment.
  76. 'Syntax: Debug.Print X.MaskBMP
  77.     MaskBMP = mvarMaskBMP
  78. End Property
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86. Public Sub Redraw()
  87. Dim FrmDC As Long
  88. If mvarTransparency = False Then
  89. OldBMP = SelectObject(mvarhDC, mvarBMP)
  90. FrmDC = TargetDC
  91. ret% = StretchBlt(FrmDC, ScreenX, ScreenY, ScreenWidth, ScreenHeight, mvarhDC, 0, 0, mvarPicWidth, mvarPicHeight, SRCCOPY)
  92. OldBMP = SelectObject(mvarhDC, OldBMP)
  93. Else
  94. FrmDC = TargetDC
  95. OldBMP = SelectObject(mvarMaskhDC, mvarMaskBMP)
  96. ret% = StretchBlt(FrmDC, ScreenX, ScreenY, ScreenWidth, ScreenHeight, mvarMaskhDC, 0, 0, mvarPicWidth, mvarPicHeight, SRCAND)
  97. OldBMP2 = SelectObject(mvarhDC, mvarBMP)
  98. ret% = StretchBlt(FrmDC, ScreenX, ScreenY, ScreenWidth, ScreenHeight, mvarhDC, 0, 0, mvarPicWidth, mvarPicHeight, SRCPAINT)
  99. OldBMP = SelectObject(mvarhDC, OldBMP)
  100.  
  101. End If
  102. End Sub
  103.  
  104. Public Function PastePicture(Optional ByVal X As Integer = 0, Optional ByVal y As Integer = 0) As Boolean
  105. OldBMP = SelectObject(mvarhDC, mvarBMP)
  106. ret% = BltSysMod.PastePicture(mvarhDC, 0, 0)
  107. OldBMP = SelectObject(mvarhDC, OldBMP)
  108. ScreenWidth = ClpBoard.Width
  109. ScreenHeight = ClpBoard.Height
  110. mvarPicWidth = ScreenWidth
  111. mvarPicHeight = ScreenHeight
  112. End Function
  113.  
  114. Public Function CopyPicture(ByVal X As Integer, ByVal y As Integer, ByVal H As Integer, ByVal W As Integer) As Boolean
  115. CopyPicture = BltSysMod.CopyPicture(mvarhDC, X, y, H, W)
  116. End Function
  117.  
  118. Public Function Create(Hwnd As Long, DC As Long, W As Long, H As Long) As Boolean
  119. mvarhDC = CreateCompatibleDC(GetDC(Hwnd))
  120. mvarBMP = CreateCompatibleBitmap(GetDC(Hwnd), W, H)
  121. mvarMaskhDC = CreateCompatibleDC(GetDC(Hwnd))
  122. mvarMaskBMP = CreateCompatibleBitmap(GetDC(Hwnd), W, H)
  123. TargetDC = DC
  124. End Function
  125.  
  126. Public Sub LoadMask(filename As String)
  127. Dim W As Integer, H As Integer
  128. DirectLoad filename, mvarMaskhDC, mvarMaskBMP, W, H
  129. If NoAutoRedraw = False Then
  130. Redraw
  131. End If
  132. End Sub
  133.  
  134. Public Sub LoadPicture(filename As String)
  135. DirectLoad filename, mvarhDC, mvarBMP, mvarPicWidth, mvarPicHeight
  136. If NoAutoRedraw = False Then
  137. Redraw
  138. End If
  139. End Sub
  140.  
  141.  
  142. Public Property Let ScrX(vData As Integer)
  143. ScreenX = vData
  144. If NoAutoRedraw = False Then
  145. Redraw
  146. End If
  147. End Property
  148.  
  149. Public Property Let ScrWidth(vData As Integer)
  150. ScreenWidth = vData
  151. If NoAutoRedraw = False Then
  152. Redraw
  153. End If
  154. End Property
  155. Public Property Let ScrHeight(vData As Integer)
  156. ScreenHeight = vData
  157. If NoAutoRedraw = False Then
  158. Redraw
  159. End If
  160. End Property
  161.  
  162.  
  163.  
  164.  
  165.  
  166. Public Property Get ScrX() As Integer
  167. ScrX = ScreenX
  168. End Property
  169.  
  170.  
  171.  
  172. Public Property Let ScrY(vData As Integer)
  173. ScreenY = vData
  174. If NoAutoRedraw = False Then
  175. Redraw
  176. End If
  177. End Property
  178.  
  179.  
  180. Public Property Get ScrHeight() As Integer
  181. ScrHeight = ScreenHeight
  182. End Property
  183.  
  184. Public Property Get ScrWidth() As Integer
  185. ScrWidth = ScreenWidth
  186. End Property
  187.  
  188.  
  189.  
  190. Public Sub SetPixel(X As Integer, y As Integer, RGBVal As Long)
  191. OldBMP = SelectObject(mvarhDC, mvarBMP)
  192. ret% = SystemSupport.SetPixel(mvarhDC, X, y, RGBVal)
  193. OldBMP = SelectObject(mvarhDC, OldBMP)
  194. End Sub
  195.  
  196. Public Function ReadPixel(X As Integer, y As Integer) As Long
  197. OldBMP = SelectObject(mvarhDC, mvarBMP)
  198. ReadPixel = GetPixel(mvarhDC, X, y)
  199. OldBMP = SelectObject(mvarhDC, OldBMP)
  200. End Function
  201.  
  202.  
  203. Public Property Let Transparency(ByVal vData As Boolean)
  204. 'used when assigning a value to the property, on the left side of an assignment.
  205. 'Syntax: X.Transparency = 5
  206.     mvarTransparency = vData
  207. End Property
  208.  
  209.  
  210.  
  211. Public Property Get BMP() As Long
  212. 'used when retrieving value of a property, on the right side of an assignment.
  213. 'Syntax: Debug.Print X.BMP
  214.     BMP = mvarBMP
  215. End Property
  216.  
  217. Public Property Get Transparency() As Boolean
  218. 'used when retrieving value of a property, on the right side of an assignment.
  219. 'Syntax: Debug.Print X.Transparency
  220.   
  221.         Transparency = mvarTransparency
  222.  
  223. End Property
  224.  
  225.  
  226.  
  227. Public Property Let Layer(ByVal vData As Variant)
  228. 'used when assigning a value to the property, on the left side of an assignment.
  229. 'Syntax: X.Layer = 5
  230.     mvarLayer = vData
  231. End Property
  232.  
  233.  
  234. Public Property Get Layer() As Variant
  235. 'used when retrieving value of a property, on the right side of an assignment.
  236. 'Syntax: Debug.Print X.Layer
  237.     If IsObject(mvarLayer) Then
  238.         Set Layer = mvarLayer
  239.     Else
  240.         Layer = mvarLayer
  241.     End If
  242. End Property
  243.  
  244.  
  245.  
  246. Public Property Get IsEmpty() As Boolean
  247. 'used when retrieving value of a property, on the right side of an assignment.
  248. 'Syntax: Debug.Print X.IsEmpty
  249.     IsEmpty = mvarIsEmpty
  250. End Property
  251.  
  252.  
  253.  
  254. Public Property Get hdc() As Long
  255. 'used when retrieving value of a property, on the right side of an assignment.
  256. 'Syntax: Debug.Print X.hDC
  257.     hdc = mvarhDC
  258. End Property
  259.  
  260.  
  261.  
  262. Private Sub Class_InitProperties()
  263.  
  264. End Sub
  265.  
  266.  
  267. Private Sub Class_ReadProperties(PropBag As PropertyBag)
  268.  
  269. End Sub
  270.  
  271.  
  272.  
  273. Public Sub DestroyPicture()
  274. ret% = DeleteDC(mvarhDC)
  275. ret% = DeleteObject(mvarBMP)
  276. ret% = DeleteDC(mvarMaskhDC)
  277. re% = DeleteObject(mvarMaskBMP)
  278. End Sub
  279.  
  280.  
  281.